package cn.broadsense.biz.service;

import cn.broadsense.biz.domain.CollectDataTask;
import cn.broadsense.biz.dto.StatisticsTaskStatusDTO;
import cn.broadsense.biz.vo.CollectDataTaskAuditVo;
import cn.broadsense.biz.vo.CollectDataTaskVo;
import cn.broadsense.common.core.domain.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author pengxin
* @description 针对表【t_collect_data_task(数据采集任务)】的数据库操作Service
* @createDate 2023-09-12 10:55:35
*/
public interface CollectDataTaskService extends IService<CollectDataTask> {


    /**
     * 分页获取待办任务列表
     *
     * @param page
     * @param query
     * @return
     */
    Page<CollectDataTask> getUnfinishedTaskList(Page<CollectDataTask> page, CollectDataTask query);

    /**
     * 查询任务列表
     *
     * @param collectDataTask
     * @return
     */
    List<CollectDataTask> findPage(CollectDataTask collectDataTask);

    /**
     * 新增任务
     *
     * @param dataTaskVo
     * @return
     */
    CollectDataTask addDataTask(CollectDataTaskVo dataTaskVo);

    /**
     * 更新任务
     *
     * @param collectDataTaskVo
     */
    void update(CollectDataTaskVo collectDataTaskVo);

    /**
     * 删除任务
     *
     * @param id
     * @return
     */
    boolean deleteById(Long id);

    /**
     * 工单详情
     *
     * @param id
     * @return
     */
    CollectDataTask getDetails(Long id);

    /**
     * 审核
     *
     * @param taskAuditVo
     */
    void auditing(CollectDataTaskAuditVo taskAuditVo);

    /**
     * 检验任务状态
     *
     * @param list
     */
    void checkTaskStatus(List<CollectDataTask> list);

    /**
     * 按照任务状态进行统计
     */
    StatisticsTaskStatusDTO statisticsTaskStatus(Long collectUserId);

}
